Skip to content

Fix macOS release game module install names#80

Merged
themuffinator merged 1 commit into
mainfrom
copilot/resolve-action-run-28004570379
Jun 23, 2026
Merged

Fix macOS release game module install names#80
themuffinator merged 1 commit into
mainfrom
copilot/resolve-action-run-28004570379

Conversation

Copilot AI commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

The manual release workflow was failing for unsigned macOS ARM64 artifacts because the packaged game module dylibs had no LC_ID_DYLIB install name. Release validation expects package-relative install names such as @loader_path/game-sp_arm64.dylib, so both macOS packaging lanes stopped in the package step.

  • Root cause

    • Darwin game modules were built as shared_module(...), which did not yield the install-name metadata the packaging validation checks with otool -D.
  • Build target adjustment

    • Switch the macOS game-sp and game-mp targets in content/baseoq4/meson.build from shared_module(...) to shared_library(...).
    • Keep the existing explicit install-name linker argument so the staged dylibs resolve as package-relative runtime artifacts.
  • Regression coverage

    • Extend tools/tests/macos_metal_bridge.py to assert that the Darwin game-module targets remain shared_library(...).
    • This keeps the Meson contract aligned with the release workflow’s macOS packaging checks.
elif host_system == 'darwin'
  shared_library(
    game_sp_binary_name,
    game_sources,
    link_args: game_module_link_args + [
      '-Wl,-install_name,@loader_path/' + game_sp_binary_name + '.dylib'
    ],
    name_suffix: 'dylib',
  )

@themuffinator themuffinator marked this pull request as ready for review June 23, 2026 07:31
@themuffinator themuffinator merged commit e751b26 into main Jun 23, 2026
2 checks passed
@themuffinator themuffinator deleted the copilot/resolve-action-run-28004570379 branch June 23, 2026 07:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants